library(ALL)
library(ConsensusClusterPlus)
title <- "ConsensusClusterResults"
dir.create(title)
d <- read.table("gsva_go_matrix.csv",sep=",",header=T,check.names=F, row.names = 1)
d <- as.matrix(d)
results = ConsensusClusterPlus(d,maxK=20,reps=1000,pItem=0.8,pFeature=1, title=title,clusterAlg="km",distance="pearson",seed=14242623,plot="pdf", writeTable = TRUE)
#pItem, 样品的抽样比例，如 pItem=0.8 表示选择80%的样本进行重复抽样；
#pfeature, Feature的抽样比例；
#maxK, 聚类结果中分类的最大的K值，必须是整数；
#reps, 重复抽样的数目；
#clusterAlg, 使用的聚类算法，“hc”用于层次聚类，“pam”用于PAM(Partioning Around Medoids)算法，“km”用于K-Means算法，也可以自定义函数；
#distance, 计算距离的方法，有pearson、spearman、euclidean、binary、maximum、canberra、minkowski;
#title, 输出结果的文件夹名字，包含了输出的图片；
#seed, 随机种子，用于重复结果
#tmyPal，指定一致性矩阵使用的颜色，默认使用白-蓝色
#plot，不设置时图片结果仅输出到屏幕，也可以设置输出为'pdf', 'png', 'pngBMP'
#writeTable，若为TRUE，则将一致性矩阵、ICL、log输出到CSV文件


str(results[[2]])
dim(d)
dim(results[[2]][["consensusMatrix"]])
results[[2]][["consensusMatrix"]][1:27,1:27]
results[[2]][["consensusTree"]]
length(results[[2]][["consensusClass"]])
results[[2]][["consensusClass"]][1:5]
results[[2]][["ml"]][1:5,1:5]
results[[2]][["ml"]][1:5,1:5]
icl = calcICL(results,title=title,plot="pdf")
icl[["clusterConsensus"]]
icl[["itemConsensus"]][1:5,]

